/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.edu.eam.clinica.logica.bo;

import co.edu.eam.persitencia.dao.Interfaz.IDAOMedicamento;
import co.edu.eam.persitencia.dao.implementacion.DAOMedicamento;
import co.edu.eam.persitencia.entidades.Inventario;
import co.edu.eam.persitencia.entidades.Laboratorio;
import co.edu.eam.persitencia.entidades.Medicamento;
import co.edu.eam.persitencia.utilidades.FactoryEntityManager;
import java.util.List;
import javax.persistence.EntityManager;

/**
 *
 * @author HECTOR
 */
public class BOMedicamento {

    static EntityManager fabrica = FactoryEntityManager.getEm();
    IDAOMedicamento dAOMedicamento;

    public BOMedicamento() {
        dAOMedicamento = new DAOMedicamento(fabrica);
    }

    public void crearMedicamento(Medicamento medicamento) throws Exception {


        if (buscarMedicamento(medicamento.getId()) == null) {

            dAOMedicamento.crearMedicamento(medicamento);
        } else {
            throw new Exception("EL MEDICAMENTO YA EXISTE");
        }
    }

    public Medicamento buscarMedicamento(long id) throws Exception {
        return dAOMedicamento.buscarMedicamento(id);
    }

    public void editarMedicamento(Medicamento medicamento) throws Exception {
        if (buscarMedicamento(medicamento.getId()) == null) {
            throw new Exception("EL MEDICAMENTO  NO EXISTE");

        } else {
            dAOMedicamento.editarMedicamento(medicamento);

        }
    }

    public List<Medicamento> listarMedicamentos() throws Exception {
        return dAOMedicamento.listarMedicamento();
    }

    public List<Medicamento> listarMedicamentosPorLab(Laboratorio laboratorio) throws Exception {
        return dAOMedicamento.listarMedicamentoLaB(laboratorio);
    }

    public void crearInventario(Inventario inventario) throws Exception {

        if (buscarMedicamento(inventario.getId()) == null) {

            dAOMedicamento.crearInventario(inventario);
        } else {
            throw new Exception("EL MEDICAMENTO YA EXISTE");
        }
    }

    public Inventario buscarInventario(Long id) throws Exception {
        return dAOMedicamento.buscarInventario(id);
    }

    public Inventario buscarArticulo(String codigo) throws Exception {
        return dAOMedicamento.buscarArticulo(codigo);
    }
}
